Micron Document
🎖️GitЯра🎖️

Commit 22935a003b598aeb23766c924d1526498a0867b4


Parents : f60481a
Author : James Rich <2199651+jamesarich@users.noreply.github.com>
Signature : Signature validation error
Date : 2026-07-24T16:43:13-05:00
Committer : GitHub <noreply@github.com>
Date : 2026-07-24T16:43:13-05:00

chore(ci): stop tracking firmware pullRequests churn (#6421)

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

Changes
Diff

diff --git a/.github/workflows/scheduled-updates.yml b/.github/workflows/scheduled-updates.yml
index ea344fc9fb..f13d67cbec 100644
--- a/.github/workflows/scheduled-updates.yml
+++ b/.github/workflows/scheduled-updates.yml
@@ -47,9 +47,12 @@ jobs:
echo "status=error" >> "$GITHUB_OUTPUT"
echo "detail=Invalid JSON response from firmware API" >> "$GITHUB_OUTPUT"
else
- if [ ! -f "$firmware_file_path" ] || ! jq --sort-keys . "$temp_firmware_file" | diff -q - <(jq --sort-keys . "$firmware_file_path"); then
+ # Drop `.pullRequests` before diffing and before writing: the API lists every open
+ # firmware PR, which turns over several times a day, and the app never reads the field
+ # (see NetworkFirmwareReleases). Keeping it churned an hourly PR carrying no real change.
+ if [ ! -f "$firmware_file_path" ] || ! jq --sort-keys 'del(.pullRequests)' "$temp_firmware_file" | diff -q - <(jq --sort-keys 'del(.pullRequests)' "$firmware_file_path"); then
echo "Changes detected in firmware list or local file missing. Updating $firmware_file_path."
- cp "$temp_firmware_file" "$firmware_file_path"
+ jq 'del(.pullRequests)' "$temp_firmware_file" > "$firmware_file_path"
echo "status=updated" >> "$GITHUB_OUTPUT"
else
echo "No changes detected in firmware list."

diff --git a/androidApp/src/main/assets/firmware_releases.json b/androidApp/src/main/assets/firmware_releases.json
index 014ae35200..51b42ef8bd 100644
--- a/androidApp/src/main/assets/firmware_releases.json
+++ b/androidApp/src/main/assets/firmware_releases.json
@@ -186,97 +186,5 @@
"release_notes": "> [!CAUTION] \r\n> This firmware includes built-in security which automatically removes your public key (for direct messages and remote administration) if it is included in any of the 25 known insecure keys in order to keep your communications private. \r\n\r\n## 🚀 Enhancements \r\n* Key erase by @jp-bennett in https://github.com/meshtastic/firmware/pull/7018\r\n* Remove GPS Baudrate locking for Seeed Xiao NRF52840 Kit by @fifieldt in https://github.com/meshtastic/firmware/pull/7016\r\n* Validate short and long names so whitespace or empty names cannot be used by @Crank-Git in https://github.com/meshtastic/firmware/pull/6993\r\n* Add InkHUD driver for WeAct Studio 2.13\" display module by @todd-herbert in https://github.com/meshtastic/firmware/pull/7001\r\n* Add InkHUD driver for WeAct Studio 1.54\" display module by @todd-herbert in https://github.com/meshtastic/firmware/pull/7000\r\n* Add support for GAT562 Mesh Trial Tracker by @csrutil in https://github.com/meshtastic/firmware/pull/6984\r\n* Add config for RAK 13300 on RAK6421 by @jp-bennett in https://github.com/meshtastic/firmware/pull/7037\r\n* InkHUD DIY builds for ProMicro & Heltec T114 by @todd-herbert in https://github.com/meshtastic/firmware/pull/7039\r\n* Allow overriding INA3221 channels by @andyshinn in https://github.com/meshtastic/firmware/pull/7035\r\n* Add the ability to share ignored contacts (for blacklisting problematic nodes) by @thebentern in https://github.com/meshtastic/firmware/pull/7044\r\n\r\n## 🐛 Bug fixes and maintenance\r\n* More low-entropy keys, and don't issue a false warning when changing … by @jp-bennett in https://github.com/meshtastic/firmware/pull/7041\r\n* Don't use assert() with side effects in a couple more places by @Stary2001 in https://github.com/meshtastic/firmware/pull/7009\r\n* chore(deps): update platform-native digest to 49634e9 by @renovate in https://github.com/meshtastic/firmware/pull/7020\r\n* chore(deps): update platform-native digest to 681ee02 by @renovate in https://github.com/meshtastic/firmware/pull/7022\r\n* chore(deps): update meshtastic/device-ui digest to 301f11e by @renovate in https://github.com/meshtastic/firmware/pull/7042\r\n* Upgrade trunk by @github-actions in https://github.com/meshtastic/firmware/pull/7030\r\n* Update protobufs and classes by @github-actions in https://github.com/meshtastic/firmware/pull/7043\r\n* Manual bump metainfo version by @vidplace7 in https://github.com/meshtastic/firmware/pull/7049\r\n\r\n## New Contributors\r\n* @csrutil made their first contribution in https://github.com/meshtastic/firmware/pull/6984\r\n* @andyshinn made their first contribution in https://github.com/meshtastic/firmware/pull/7035\r\n\r\n**Full Changelog**: https://github.com/meshtastic/firmware/compare/v2.6.11.60ec05e...v2.6.12.9861e82"
}
]
- },
- "pullRequests": [
- {
- "id": "11197",
- "title": "fix(mesh): don't assert on malloc() failure in MemoryDynamic::alloc()",
- "page_url": "https://github.com/meshtastic/firmware/pull/11197",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11191",
- "title": "Router: defer nested local sends to avoid handleReceived re-entrancy",
- "page_url": "https://github.com/meshtastic/firmware/pull/11191",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11187",
- "title": "mark way fewer boards as board_level = pr",
- "page_url": "https://github.com/meshtastic/firmware/pull/11187",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11184",
- "title": "gps: replace GeoCoord::latLongToMeter's spherical trig with equirectangular approximation",
- "page_url": "https://github.com/meshtastic/firmware/pull/11184",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11181",
- "title": "Reduce reboots and radio restarts",
- "page_url": "https://github.com/meshtastic/firmware/pull/11181",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11174",
- "title": "lint: mark example MQTT password as a non-secret",
- "page_url": "https://github.com/meshtastic/firmware/pull/11174",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11173",
- "title": "lint: drop redundant bandit ignores in c3 exception decoder",
- "page_url": "https://github.com/meshtastic/firmware/pull/11173",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11172",
- "title": "lint: hoist stdlib imports above Import(env) in add_mbedtls_sources",
- "page_url": "https://github.com/meshtastic/firmware/pull/11172",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11170",
- "title": "lint: drop dead CKV2_GHA_1 ignore in main_matrix workflow",
- "page_url": "https://github.com/meshtastic/firmware/pull/11170",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11168",
- "title": "lint: drop redundant quotes in .coderabbit.yaml",
- "page_url": "https://github.com/meshtastic/firmware/pull/11168",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11164",
- "title": "fix(api): bound the stream drain so a full config dump can't starve the watchdog",
- "page_url": "https://github.com/meshtastic/firmware/pull/11164",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11163",
- "title": "replace screens with unique_ptr",
- "page_url": "https://github.com/meshtastic/firmware/pull/11163",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11156",
- "title": "Testing build containers based on `develop` branch",
- "page_url": "https://github.com/meshtastic/firmware/pull/11156",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11142",
- "title": "Shared e-ink hardware layer: foundation for target-by-target migration off GxEPD2",
- "page_url": "https://github.com/meshtastic/firmware/pull/11142",
- "zip_url": "https://img.shields.io/badge/Flash_this_PR_in_the_Web_Flasher-2C2D3C?style=for-the-badge"
- },
- {
- "id": "11138",
- "title": "feat(lr2021): enable LR2021 LoRa radio support on native/portduino",
- "page_url": "https://github.com/meshtastic/firmware/pull/11138",
- "zip_url": "https://discord.com/invite/meshtastic"
- }
- ]
-}
\ No newline at end of file
+ }
+}

diff --git a/core/model/src/commonMain/kotlin/org/meshtastic/core/model/NetworkFirmwareRelease.kt b/core/model/src/commonMain/kotlin/org/meshtastic/core/model/NetworkFirmwareRelease.kt
index 40b85228ac..cc293f6bc8 100644
--- a/core/model/src/commonMain/kotlin/org/meshtastic/core/model/NetworkFirmwareRelease.kt
+++ b/core/model/src/commonMain/kotlin/org/meshtastic/core/model/NetworkFirmwareRelease.kt
@@ -34,11 +34,12 @@ data class Releases(
@SerialName("stable") val stable: List<NetworkFirmwareRelease> = listOf(),
)
-@Serializable
-data class NetworkFirmwareReleases(
- @SerialName("pullRequests") val pullRequests: List<NetworkFirmwareRelease> = listOf(),
- @SerialName("releases") val releases: Releases = Releases(),
-)
+/**
+ * The API also returns a `pullRequests` array of open firmware PRs. It is deliberately not modelled: nothing in the app
+ * offers PR builds, and the list turns over several times a day, so carrying it only churned the bundled asset. The
+ * shared [kotlinx.serialization.json.Json] is configured with `ignoreUnknownKeys`, so responses still decode.
+ */
+@Serializable data class NetworkFirmwareReleases(@SerialName("releases") val releases: Releases = Releases())
/**
* The nightly-preview pointer published to `firmware-nightly/index.json` on meshtastic.github.io. Unlike the release

Served by rngit 1.5.2 - Generated in 0.09s